﻿//using System.IO;
//using Newtonsoft.Json;
//using Newtonsoft.Json.Bson;

//namespace Framework.Serializer
//{
//    class BsonSerializer : BytesSerializeBase
//    {
//        static readonly Newtonsoft.Json.JsonSerializer Js = new Newtonsoft.Json.JsonSerializer
//        {
//            ObjectCreationHandling = ObjectCreationHandling.Replace,
//            MissingMemberHandling = MissingMemberHandling.Ignore,
//            ReferenceLoopHandling = ReferenceLoopHandling.Ignore
//        };
//        /// <summary>
//        /// 序列化为byte[]
//        /// </summary>
//        /// <param name="obj"></param>
//        /// <returns></returns>
//        public override byte[] Serialize(object obj)
//        {
//            using (var ms = new MemoryStream())
//            {
//                using (var bw = new BsonWriter(ms))
//                {
//                    Js.Serialize(bw, obj);
//                    return ms.ToArray();
//                }
//            }
//        }

        
//        /// <summary>
//        /// 反序列化为实体
//        /// </summary>
//        /// <typeparam name="T"></typeparam>
//        /// <param name="source"></param>
//        /// <returns></returns>
//        public override T DeSerialize<T>(byte[] source)
//        {
//            using (var br = new BsonReader(new MemoryStream(source)))
//            {
//                return Js.Deserialize<T>(br);
//            }
//        }
//    }
//}
